package com.zd.commodity.biz;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * 基础业务逻辑层
 * @author Administrator
 *
 */
public interface IBaseBiz<T> {
	
	
	/**
	 * 校验excel中字段数据库是否重复
	 * @param excelData
	 * @param sql
	 * @param concatCols 需要连接的列
	 * @return
	 */
	public List<String> checkExcelRepeatBatch(List<String[]> excelData,String sql,int[] concatCols);
	/**
	 * 导出excel
	 * @param clasz 
	 * @param sql
	 * @param argMap
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	public List getExcelExportListBySql(Class clasz,String sql, Map<String, String> argMap, int firstResult, int maxResults);
	/**
	 * 返回列表(条件查询)
	 * @return
	 */
	public List<T> getList(T t1,T t2,Object param);
	
	/**
	 * 分页
	 * @param t1
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	public List<T> getListByPage(T t1,T t2,Object param, int firstResult, int maxResults);
	
	/**
	 * 统计记录数
	 * @param t1
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	public long getCount(T t1,T t2,Object param);
	
	/**
	 * hql分页
	 * @param clasz
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	public List getPagedListBySql(Class clasz,String sql, Map<String, String> argMap, int firstResult, int maxResults);

	
	public long getPagedListCountBySql(String sql, Map<String, String> argMap);
	
	/**
	 * 增加
	 * @param t
	 */
	public void add(T t);
	
	/**
	 * 删除
	 * @param id
	 */
	public void delete(Long id);
	
	/**
	 * 获取实体
	 * @param id
	 * @return
	 */
	public T get(Long id);
	
	/**
	 * 更新
	 * @param t
	 */
	public void update(T t);
	
	public List<String[]> readExecl(HashMap<Integer, String> checkmap);

}
